<template>
  <view class="ceshi" @click="onChange('1231231')">
    点击测试：{{defaultValue}}
  </view>
</template>

<script>
  import Emitter from '@r/utils/emitter.js';
  
	export default {
    name: 'radio',
    mixins: [Emitter],
    props: {
      value: {
      	type: [String, Number],
      	default: ''
      },
    },
    data() {
    	return {
    		defaultValue: this.value,
    	};
    },
    watch: {
    	value(nVal, oVal) {
    		this.defaultValue = nVal;
    		// 当值发生变化，且为select类型时(此时input被设置为disabled，不会触发@input事件)，模拟触发@input事件
    		if(nVal != oVal && this.type == 'select') 
        this.onChange(nVal);
    	},
    },
    methods:{
      onChange(value){
        this.$emit('input', value);
        // 这里不能延时时间太短，或者使用this.$nextTick，否则在头条上，会造成混乱
        setTimeout(() => {
        	// 将当前的值发送到 u-form-item 进行校验
        	this.dispatch('u-form-item', 'on-form-change', value);
        }, 40);
      }
    }
	}
</script>

<style lang="scss" scoped>

</style>
